﻿using System;
using System.IO;
using Mono.Cecil.Cil;

namespace Mono.Cecil
{
	// Token: 0x020000A8 RID: 168
	public sealed class ReaderParameters
	{
		// Token: 0x170001A0 RID: 416
		// (get) Token: 0x06000698 RID: 1688 RVA: 0x000216B4 File Offset: 0x0001F8B4
		// (set) Token: 0x06000699 RID: 1689 RVA: 0x00004658 File Offset: 0x00002858
		public ReadingMode ReadingMode
		{
			get
			{
				return this.reading_mode;
			}
			set
			{
				this.reading_mode = value;
			}
		}

		// Token: 0x170001A1 RID: 417
		// (get) Token: 0x0600069A RID: 1690 RVA: 0x000216CC File Offset: 0x0001F8CC
		// (set) Token: 0x0600069B RID: 1691 RVA: 0x00004662 File Offset: 0x00002862
		public bool InMemory
		{
			get
			{
				return this.in_memory;
			}
			set
			{
				this.in_memory = value;
			}
		}

		// Token: 0x170001A2 RID: 418
		// (get) Token: 0x0600069C RID: 1692 RVA: 0x000216E4 File Offset: 0x0001F8E4
		// (set) Token: 0x0600069D RID: 1693 RVA: 0x0000466C File Offset: 0x0000286C
		public IAssemblyResolver AssemblyResolver
		{
			get
			{
				return this.assembly_resolver;
			}
			set
			{
				this.assembly_resolver = value;
			}
		}

		// Token: 0x170001A3 RID: 419
		// (get) Token: 0x0600069E RID: 1694 RVA: 0x000216FC File Offset: 0x0001F8FC
		// (set) Token: 0x0600069F RID: 1695 RVA: 0x00004676 File Offset: 0x00002876
		public IMetadataResolver MetadataResolver
		{
			get
			{
				return this.metadata_resolver;
			}
			set
			{
				this.metadata_resolver = value;
			}
		}

		// Token: 0x170001A4 RID: 420
		// (get) Token: 0x060006A0 RID: 1696 RVA: 0x00021714 File Offset: 0x0001F914
		// (set) Token: 0x060006A1 RID: 1697 RVA: 0x00004680 File Offset: 0x00002880
		public IMetadataImporterProvider MetadataImporterProvider
		{
			get
			{
				return this.metadata_importer_provider;
			}
			set
			{
				this.metadata_importer_provider = value;
			}
		}

		// Token: 0x170001A5 RID: 421
		// (get) Token: 0x060006A2 RID: 1698 RVA: 0x0002172C File Offset: 0x0001F92C
		// (set) Token: 0x060006A3 RID: 1699 RVA: 0x0000468A File Offset: 0x0000288A
		public IReflectionImporterProvider ReflectionImporterProvider
		{
			get
			{
				return this.reflection_importer_provider;
			}
			set
			{
				this.reflection_importer_provider = value;
			}
		}

		// Token: 0x170001A6 RID: 422
		// (get) Token: 0x060006A4 RID: 1700 RVA: 0x00021744 File Offset: 0x0001F944
		// (set) Token: 0x060006A5 RID: 1701 RVA: 0x00004694 File Offset: 0x00002894
		public Stream SymbolStream
		{
			get
			{
				return this.symbol_stream;
			}
			set
			{
				this.symbol_stream = value;
			}
		}

		// Token: 0x170001A7 RID: 423
		// (get) Token: 0x060006A6 RID: 1702 RVA: 0x0002175C File Offset: 0x0001F95C
		// (set) Token: 0x060006A7 RID: 1703 RVA: 0x0000469E File Offset: 0x0000289E
		public ISymbolReaderProvider SymbolReaderProvider
		{
			get
			{
				return this.symbol_reader_provider;
			}
			set
			{
				this.symbol_reader_provider = value;
			}
		}

		// Token: 0x170001A8 RID: 424
		// (get) Token: 0x060006A8 RID: 1704 RVA: 0x00021774 File Offset: 0x0001F974
		// (set) Token: 0x060006A9 RID: 1705 RVA: 0x000046A8 File Offset: 0x000028A8
		public bool ReadSymbols
		{
			get
			{
				return this.read_symbols;
			}
			set
			{
				this.read_symbols = value;
			}
		}

		// Token: 0x170001A9 RID: 425
		// (get) Token: 0x060006AA RID: 1706 RVA: 0x0002178C File Offset: 0x0001F98C
		// (set) Token: 0x060006AB RID: 1707 RVA: 0x000046B2 File Offset: 0x000028B2
		public bool ThrowIfSymbolsAreNotMatching
		{
			get
			{
				return this.throw_symbols_mismatch;
			}
			set
			{
				this.throw_symbols_mismatch = value;
			}
		}

		// Token: 0x170001AA RID: 426
		// (get) Token: 0x060006AC RID: 1708 RVA: 0x000217A4 File Offset: 0x0001F9A4
		// (set) Token: 0x060006AD RID: 1709 RVA: 0x000046BC File Offset: 0x000028BC
		public bool ReadWrite
		{
			get
			{
				return this.read_write;
			}
			set
			{
				this.read_write = value;
			}
		}

		// Token: 0x170001AB RID: 427
		// (get) Token: 0x060006AE RID: 1710 RVA: 0x000217BC File Offset: 0x0001F9BC
		// (set) Token: 0x060006AF RID: 1711 RVA: 0x000046C6 File Offset: 0x000028C6
		public bool ApplyWindowsRuntimeProjections
		{
			get
			{
				return this.projections;
			}
			set
			{
				this.projections = value;
			}
		}

		// Token: 0x060006B0 RID: 1712 RVA: 0x000046D0 File Offset: 0x000028D0
		public ReaderParameters() : this(ReadingMode.Deferred)
		{
		}

		// Token: 0x060006B1 RID: 1713 RVA: 0x000046DB File Offset: 0x000028DB
		public ReaderParameters(ReadingMode readingMode)
		{
			this.reading_mode = readingMode;
			this.throw_symbols_mismatch = true;
		}

		// Token: 0x040001E0 RID: 480
		private ReadingMode reading_mode;

		// Token: 0x040001E1 RID: 481
		internal IAssemblyResolver assembly_resolver;

		// Token: 0x040001E2 RID: 482
		internal IMetadataResolver metadata_resolver;

		// Token: 0x040001E3 RID: 483
		internal IMetadataImporterProvider metadata_importer_provider;

		// Token: 0x040001E4 RID: 484
		internal IReflectionImporterProvider reflection_importer_provider;

		// Token: 0x040001E5 RID: 485
		private Stream symbol_stream;

		// Token: 0x040001E6 RID: 486
		private ISymbolReaderProvider symbol_reader_provider;

		// Token: 0x040001E7 RID: 487
		private bool read_symbols;

		// Token: 0x040001E8 RID: 488
		private bool throw_symbols_mismatch;

		// Token: 0x040001E9 RID: 489
		private bool projections;

		// Token: 0x040001EA RID: 490
		private bool in_memory;

		// Token: 0x040001EB RID: 491
		private bool read_write;
	}
}
